<?php

/**
 * Classe représentant une personne.
 * @author LESAGE Alexandre
 * @since 3 aôut 2013
 * @version 1.0
 */

class ActionsDeCommunication
{
		/* Attributs */
	/**
	 * Nom de la personne.
	 * @var string
	 */
	private $_nom;
	
	/**
	 * Prenom de la personne.
	 * @var string
	 */
	private $_prenom;
	
	/**
	 * Status de la personne (étudiant, professeur, administrateur)
	 * @var string
	 */
	private $_status;

		/* Constructeurs & Destructeurs */
	public function __construct($nom, $prenom, $status)
	{
		$this->set_nom($nom);
		$this->set_prenom($prenom);
		$this->set_status($status);
	}
	
		/* Getteurs & Setteurs */
	/**
	 * Fonction permettant de récupérer le prénom de la personne.
	 * @return string $_prenom Le prénom de la personne.
	 */
	public function get_prenom()
	{
		return $this->_prenom;
	}
	
	/**
	 * Met à jour le prenom de la personne.
	 * @param string $prenom Le nouveau prénom de la personne.
	 */
	public function set_prenom($prenom)
	{
		if(is_empty($prenom)) // Si $prenom est vide, on afficher un message d'erreur.
			trigger_error('Le nouveau prénom de la perosnne est vide');
		else if(is_string($prenom)) // Si $prenom n'est pas un string, on afficher un message d'erreur.
			trigger_error('Le nouveau prénom de la personne doit être une chaine de caractère !');
		else
			$this->_prenom = $prenom;
	}
	
	/**
	 * Fonction permettant de récupérer le nom de la personne.
	 * @return string $_nom Le nom de la personne.
	 */
	public function get_nom()
	{
		return $this->_nom;
	}
	
	/**
	 * Met à jour le nom de la personne.
	 * @param string $nom Le nouveau nom de la personne.
	 */
	public function set_nom($nom)
	{
		if(is_empty($nom)) // Si $nom est vide, on afficher un message d'erreur.
			trigger_error('Le nouveau nom de la perosnne est vide');
		else if(is_string($nom)) // Si $nom n'est pas un string, on afficher un message d'erreur.
			trigger_error('Le nouveau nom de la personne doit être une chaine de caractère !');
		else
			$this->_nom = $nom;
	}
	
	/**
	 * Function permettant de récupérer le status de la personne.
	 * @return string $_status Le status de la personne.
	 */
	public function get_status()
	{
		return $this->_status;
	}
	
	/**
	 * Met à jour le status de la personne.
	 * Trois status sont possibles :
	 * - Etudiant.
	 * - Professeur.
	 * - Administrateur.
	 * @param string $status le nouveau status de la personne.
	 */
	public function set_status($status)
	{
		if(is_empty($status)) // Si $status est vide, on afficher un message d'erreur.
			trigger_error('Le nouveau status de la personne est vide.');
		else if(is_string($status)) // Si $status n'est pas un string, on afficher un message d'erreur.
			trigger_error('Le nouvel de la personne doit être une chaine de caractère !');
		else if($status !== "Etudiant" || $status !== "Professeur" || $status !== "Administrateur") // Si $status est incorrecte, on afficher un message d'erreur.
			trigger_error('Le nouveau status de la personne est impossible. Status possibles : Etudiant - Professeur - Administrateur.');
		else
			$this->_status = $status;
	
	}
}

?>